package cn.wolfcode.wolf2w.business.config;


import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class StrategyRabbitConfig {
    @Bean
    public Queue strategyQueue(){
        return new Queue("strategyQueue", true,false, false);
    }

    @Bean
    public TopicExchange strategyExchange(){
        return new TopicExchange("strategyExchange", true, false);
    }

    //绑定
    @Bean
    public Binding strategyBinding(){
        /**
         * ① destination：目的地名称,即消息最终要被路由到的队列名称。
         * ② destinationType：目的地类型，可以是队列或者交换器。
         * ③ exchange：交换器名称。即消息先发送到该交换机，再通过绑定规则路由到队列。
         * ④ routingKey：路由键，即消息通过交换机后，会根据路由键规则，将消息路由到对应的队列。
         *      只要消息的路由键以"strategy."开头都会被路由到strategyQueue队列。
         * ⑤ arguments：绑定参数,表示绑定不需要额外参数。
         * */
        return new Binding("strategyQueue", Binding.DestinationType.QUEUE,
                "strategyExchange", "strategy.#", null);
    }


}
